using ZR.Model.BaseFrame.Dto;
using ZR.Model.BaseFrame.Entity;
using ZR.Model.BaseFrame;

namespace ZR.Service.BaseFrame.IService
{
    /// <summary>
    /// 数据字典服务接口
    /// </summary>
    public interface IDataDicServiceBase : IBaseService<DataDicEntity>
    {

            /// <summary>
            /// 添加数据字典
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            Task<bool> AddDataDic(DataDicEntity model);

            /// <summary>
            /// 删除数据字典
            /// </summary>
            /// <param name="ids"></param>
            /// <param name="isRealDel"></param>
            /// <returns></returns>
            Task<bool> DeleteDataDic(long[] ids, bool isRealDel = true);

            /// <summary>
            /// 修改数据字典
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            Task<bool> ModifyDataDic(DataDicEntity model);

            /// <summary>
            /// 变更数据字典状态
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            Task<bool> ChangeDataDicState(ChangeDataDicStateReq req);


            /// <summary>
            /// 获取数据字典树选择列表
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            Task<List<TreeNodeInfo>> GetDataDicTreeSelectList(GetDataDicTreeSelectListReq req);

            /// <summary>
            /// 获取数据字典分页列表
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            Task<PagedInfo<DataDicListItemDto>> GetDataDicPageList(GetDataDicPageListReq req);

        

            /// <summary>
            /// 获取数据字典详情
            /// </summary>
            /// <param name="id"></param>
            /// <returns></returns>
            Task<DataDicDetailDto> GetDataDicDetail(long id);

    

    }
}
